0.1 ✈️ Exercise 1

0.1.1 a.

## Parsed with column specification:
## cols(
##   .default = col_double(),
##   FlightDate = col_date(format = ""),
##   Reporting_Airline = col_character(),
##   IATA_CODE_Reporting_Airline = col_character(),
##   Tail_Number = col_character(),
##   Origin = col_character(),
##   OriginCityName = col_character(),
##   OriginState = col_character(),
##   OriginStateFips = col_character(),
##   OriginStateName = col_character(),
##   Dest = col_character(),
##   DestCityName = col_character(),
##   DestState = col_character(),
##   DestStateFips = col_character(),
##   DestStateName = col_character(),
##   CRSDepTime = col_character(),
##   DepTime = col_character(),
##   DepTimeBlk = col_character(),
##   WheelsOff = col_character(),
##   WheelsOn = col_character(),
##   CRSArrTime = col_character()
##   # ... with 40 more columns
## )
## See spec(...) for full column specifications.

Here, I chose ATL airport and UA airline.

0.1.2 b.

## Parsed with column specification:
## cols(
##   .default = col_double(),
##   AIRPORT = col_character(),
##   DISPLAY_AIRPORT_NAME = col_character(),
##   DISPLAY_AIRPORT_CITY_NAME_FULL = col_character(),
##   AIRPORT_COUNTRY_NAME = col_character(),
##   AIRPORT_COUNTRY_CODE_ISO = col_character(),
##   AIRPORT_STATE_NAME = col_character(),
##   AIRPORT_STATE_CODE = col_character(),
##   AIRPORT_STATE_FIPS = col_character(),
##   DISPLAY_CITY_MARKET_NAME_FULL = col_character(),
##   LAT_HEMISPHERE = col_character(),
##   LON_HEMISPHERE = col_character(),
##   AIRPORT_START_DATE = col_date(format = ""),
##   AIRPORT_THRU_DATE = col_date(format = ""),
##   X33 = col_logical()
## )
## See spec(...) for full column specifications.

0.1.3 c. 

## Source : http://tile.stamen.com/terrain/4/2/5.png
## Source : http://tile.stamen.com/terrain/4/3/5.png
## Source : http://tile.stamen.com/terrain/4/4/5.png
## Source : http://tile.stamen.com/terrain/4/5/5.png
## Source : http://tile.stamen.com/terrain/4/2/6.png
## Source : http://tile.stamen.com/terrain/4/3/6.png
## Source : http://tile.stamen.com/terrain/4/4/6.png
## Source : http://tile.stamen.com/terrain/4/5/6.png
## Source : http://tile.stamen.com/terrain/4/2/7.png
## Source : http://tile.stamen.com/terrain/4/3/7.png
## Source : http://tile.stamen.com/terrain/4/4/7.png
## Source : http://tile.stamen.com/terrain/4/5/7.png

The level of transparency of the lines specifies how often does UA carry flights between ATL airport and other airports in Feb 2020. The deeper the color means more flights.

0.2 ✈️ Exercise 2

0.2.1 a.

(#tab:standardise timezone)Flights-after normalise as NY Time
Origin_DateTime_NY Dest_DateTime_NY Tail_Number Origin Dest
2020-02-01 20:35:00 2020-02-01 22:46:00 N231JB ATL BOS
2020-02-01 20:48:00 2020-02-01 23:20:00 N309JB BOS ATL
2020-02-01 10:38:00 2020-02-01 12:52:00 N284JB ATL BOS
2020-02-01 06:01:00 2020-02-01 07:56:00 N632JB ATL FLL
2020-02-01 10:46:00 2020-02-01 12:31:00 N547JB FLL ATL
2020-02-01 07:22:00 2020-02-01 10:02:00 N637JB JFK ATL

0.2.2 b.

## # A tibble: 6,580 x 2
## # Groups:   Tail_Number [2,422]
##    Tail_Number DayofMonth
##    <chr>            <dbl>
##  1 N101DQ              24
##  2 N101HQ               1
##  3 N101HQ               2
##  4 N102HQ              12
##  5 N102HQ              29
##  6 N103HQ               7
##  7 N103HQ              11
##  8 N105DU              21
##  9 N106HQ              22
## 10 N107SY              22
## # ... with 6,570 more rows

## List of 93
##  $ line                      :List of 6
##   ..$ colour       : chr "black"
##   ..$ size         : num 0.409
##   ..$ linetype     : num 1
##   ..$ lineend      : chr "butt"
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ rect                      :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : chr "black"
##   ..$ size         : num 0.409
##   ..$ linetype     : num 1
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ text                      :List of 11
##   ..$ family       : chr ""
##   ..$ face         : chr "plain"
##   ..$ colour       : chr "black"
##   ..$ size         : num 9
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : num 0
##   ..$ lineheight   : num 0.9
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ title                     : NULL
##  $ aspect.ratio              : NULL
##  $ axis.title                : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.title.x              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 2.25pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.x.top          :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 2.25pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.x.bottom       : NULL
##  $ axis.title.y              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : num 90
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 2.25pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.y.left         : NULL
##  $ axis.title.y.right        :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 2.25pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text                 : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.text.x               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 1.8pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x.top           :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 1.8pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x.bottom        : NULL
##  $ axis.text.y               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 1
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 1.8pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.y.left          : NULL
##  $ axis.text.y.right         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 1.8pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.ticks                : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.ticks.x              : NULL
##  $ axis.ticks.x.top          : NULL
##  $ axis.ticks.x.bottom       : NULL
##  $ axis.ticks.y              : NULL
##  $ axis.ticks.y.left         : NULL
##  $ axis.ticks.y.right        : NULL
##  $ axis.ticks.length         : 'unit' num 2.25pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ axis.ticks.length.x       : NULL
##  $ axis.ticks.length.x.top   : NULL
##  $ axis.ticks.length.x.bottom: NULL
##  $ axis.ticks.length.y       : NULL
##  $ axis.ticks.length.y.left  : NULL
##  $ axis.ticks.length.y.right : NULL
##  $ axis.line                 : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.line.x               : NULL
##  $ axis.line.x.top           : NULL
##  $ axis.line.x.bottom        : NULL
##  $ axis.line.y               : NULL
##  $ axis.line.y.left          : NULL
##  $ axis.line.y.right         : NULL
##  $ legend.background         :List of 5
##   ..$ fill         : NULL
##   ..$ colour       : logi NA
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ legend.margin             : 'margin' num [1:4] 4.5pt 4.5pt 4.5pt 4.5pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ legend.spacing            : 'unit' num 9pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ legend.spacing.x          : NULL
##  $ legend.spacing.y          : NULL
##  $ legend.key                :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : logi NA
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ legend.key.size           : 'unit' num 1.2lines
##   ..- attr(*, "valid.unit")= int 3
##   ..- attr(*, "unit")= chr "lines"
##  $ legend.key.height         : NULL
##  $ legend.key.width          : NULL
##  $ legend.text               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.text.align         : NULL
##  $ legend.title              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.title.align        : NULL
##  $ legend.position           : num [1:2] 0 0
##  $ legend.direction          : NULL
##  $ legend.justification      : num [1:2] 0 0
##  $ legend.box                : NULL
##  $ legend.box.just           : NULL
##  $ legend.box.margin         : 'margin' num [1:4] 0cm 0cm 0cm 0cm
##   ..- attr(*, "valid.unit")= int 1
##   ..- attr(*, "unit")= chr "cm"
##  $ legend.box.background     : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ legend.box.spacing        : 'unit' num 9pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ panel.background          : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.border              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.spacing             : 'unit' num 0lines
##   ..- attr(*, "valid.unit")= int 3
##   ..- attr(*, "unit")= chr "lines"
##  $ panel.spacing.x           : NULL
##  $ panel.spacing.y           : NULL
##  $ panel.grid                : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.grid.major          : NULL
##  $ panel.grid.minor          :List of 6
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.5
##   ..$ linetype     : NULL
##   ..$ lineend      : NULL
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ panel.grid.major.x        : NULL
##  $ panel.grid.major.y        : NULL
##  $ panel.grid.minor.x        : NULL
##  $ panel.grid.minor.y        : NULL
##  $ panel.ontop               : logi FALSE
##  $ plot.background           : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ plot.title                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 4.5pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.title.position       : chr "panel"
##  $ plot.subtitle             :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 4.5pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : num 1
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 4.5pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption.position     : chr "panel"
##  $ plot.tag                  :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.tag.position         : chr "topleft"
##  $ plot.margin               : 'margin' num [1:4] 4.5pt 4.5pt 4.5pt 4.5pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.background          :List of 5
##   ..$ fill         : chr "grey85"
##   ..$ colour       : chr "grey20"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ strip.background.x        : NULL
##  $ strip.background.y        : NULL
##  $ strip.placement           : chr "inside"
##  $ strip.text                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : chr "grey10"
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 3.6pt 3.6pt 3.6pt 3.6pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.text.x              : NULL
##  $ strip.text.y              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.switch.pad.grid     : 'unit' num 2.25pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.switch.pad.wrap     : 'unit' num 2.25pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.text.y.left         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num 90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi TRUE
##  - attr(*, "validate")= logi TRUE

0.2.3 c. 

## # A tibble: 2 x 11
##   Origin_lon Origin_lat Dest_lon Dest_lat Dep_DateTime        Arr_DateTime
##        <dbl>      <dbl>    <dbl>    <dbl> <dttm>              <chr>       
## 1      -76.7       39.2    -84.4     33.6 2020-02-24 18:42:00 2020-02-24 ~
## 2      -84.4       33.6    -82.9     40.0 2020-02-24 22:06:00 2020-02-24 ~
## # ... with 5 more variables: AirTime_inter <dbl>, lon_inter <dbl>,
## #   lat_inter <dbl>, lon_incre <dbl>, lat_incre <dbl>
## New names:
## * value -> value...1
## * value -> value...2
## New names:
## * value -> value...1
## * value -> value...2

0.2.4 d. 

### test

## # A tibble: 2 x 8
##   DepTime AirTime Origin_lon Origin_lat Dest_lon Dest_lat lon_incre lat_incre
##   <chr>     <dbl>      <dbl>      <dbl>    <dbl>    <dbl>     <dbl>     <dbl>
## 1 2206         67      -84.4       33.6    -82.9     40.0     0.344     1.42 
## 2 1842        103      -76.7       39.2    -84.4     33.6    -1.13     -0.807

0.2.5 e.

## # A tibble: 14 x 122
##     Year Quarter Month DayofMonth DayOfWeek FlightDate Reporting_Airli~
##    <dbl>   <dbl> <dbl>      <dbl>     <dbl> <date>     <chr>           
##  1  2020       1     2         24         1 2020-02-24 B6              
##  2  2020       1     2         24         1 2020-02-24 B6              
##  3  2020       1     2         24         1 2020-02-24 B6              
##  4  2020       1     2         24         1 2020-02-24 B6              
##  5  2020       1     2         24         1 2020-02-24 B6              
##  6  2020       1     2         24         1 2020-02-24 B6              
##  7  2020       1     2         24         1 2020-02-24 B6              
##  8  2020       1     2         24         1 2020-02-24 B6              
##  9  2020       1     2         24         1 2020-02-24 B6              
## 10  2020       1     2         24         1 2020-02-24 B6              
## 11  2020       1     2         24         1 2020-02-24 B6              
## 12  2020       1     2         24         1 2020-02-24 B6              
## 13  2020       1     2         24         1 2020-02-24 B6              
## 14  2020       1     2         24         1 2020-02-24 B6              
## # ... with 115 more variables: DOT_ID_Reporting_Airline <dbl>,
## #   IATA_CODE_Reporting_Airline <chr>, Tail_Number <chr>,
## #   Flight_Number_Reporting_Airline <dbl>, OriginAirportID <dbl>,
## #   OriginAirportSeqID <dbl>, OriginCityMarketID <dbl>, Origin <chr>,
## #   OriginCityName <chr>, OriginState <chr>, OriginStateFips <chr>,
## #   OriginStateName <chr>, OriginWac <dbl>, DestAirportID <dbl>,
## #   DestAirportSeqID <dbl>, DestCityMarketID <dbl>, Dest <chr>,
## #   DestCityName <chr>, DestState <chr>, DestStateFips <chr>,
## #   DestStateName <chr>, DestWac <dbl>, CRSDepTime <chr>, DepTime <chr>,
## #   DepDelay <dbl>, DepDelayMinutes <dbl>, DepDel15 <dbl>,
## #   DepartureDelayGroups <dbl>, DepTimeBlk <chr>, TaxiOut <dbl>,
## #   WheelsOff <chr>, WheelsOn <chr>, TaxiIn <dbl>, CRSArrTime <chr>,
## #   ArrTime <chr>, ArrDelay <dbl>, ArrDelayMinutes <dbl>, ArrDel15 <dbl>,
## #   ArrivalDelayGroups <dbl>, ArrTimeBlk <chr>, Cancelled <dbl>,
## #   CancellationCode <chr>, Diverted <dbl>, CRSElapsedTime <dbl>,
## #   ActualElapsedTime <dbl>, AirTime <dbl>, Flights <dbl>, Distance <dbl>,
## #   DistanceGroup <dbl>, CarrierDelay <dbl>, WeatherDelay <dbl>,
## #   NASDelay <dbl>, SecurityDelay <dbl>, LateAircraftDelay <dbl>,
## #   FirstDepTime <chr>, TotalAddGTime <dbl>, LongestAddGTime <dbl>,
## #   DivAirportLandings <dbl>, DivReachedDest <dbl>, DivActualElapsedTime <dbl>,
## #   DivArrDelay <dbl>, DivDistance <dbl>, Div1Airport <chr>,
## #   Div1AirportID <dbl>, Div1AirportSeqID <dbl>, Div1WheelsOn <chr>,
## #   Div1TotalGTime <dbl>, Div1LongestGTime <dbl>, Div1WheelsOff <dbl>,
## #   Div1TailNum <chr>, Div2Airport <lgl>, Div2AirportID <lgl>,
## #   Div2AirportSeqID <lgl>, Div2WheelsOn <lgl>, Div2TotalGTime <lgl>,
## #   Div2LongestGTime <lgl>, Div2WheelsOff <lgl>, Div2TailNum <lgl>,
## #   Div3Airport <lgl>, Div3AirportID <lgl>, Div3AirportSeqID <lgl>,
## #   Div3WheelsOn <lgl>, Div3TotalGTime <lgl>, Div3LongestGTime <lgl>,
## #   Div3WheelsOff <lgl>, Div3TailNum <lgl>, Div4Airport <lgl>,
## #   Div4AirportID <lgl>, Div4AirportSeqID <lgl>, Div4WheelsOn <lgl>,
## #   Div4TotalGTime <lgl>, Div4LongestGTime <lgl>, Div4WheelsOff <lgl>,
## #   Div4TailNum <lgl>, Div5Airport <lgl>, Div5AirportID <lgl>,
## #   Div5AirportSeqID <lgl>, Div5WheelsOn <lgl>, Div5TotalGTime <lgl>,
## #   Div5LongestGTime <lgl>, ...

Here is one way to make an animation.

0.3 ✈️ Exercise 3

## Parsed with column specification:
## cols(
##   .default = col_double(),
##   FlightDate = col_date(format = ""),
##   Reporting_Airline = col_character(),
##   IATA_CODE_Reporting_Airline = col_character(),
##   Tail_Number = col_character(),
##   Origin = col_character(),
##   OriginCityName = col_character(),
##   OriginState = col_character(),
##   OriginStateFips = col_character(),
##   OriginStateName = col_character(),
##   Dest = col_character(),
##   DestCityName = col_character(),
##   DestState = col_character(),
##   DestStateFips = col_character(),
##   DestStateName = col_character(),
##   CRSDepTime = col_character(),
##   DepTime = col_character(),
##   DepTimeBlk = col_character(),
##   WheelsOff = col_character(),
##   WheelsOn = col_character(),
##   CRSArrTime = col_character()
##   # ... with 40 more columns
## )
## See spec(...) for full column specifications.
## Parsed with column specification:
## cols(
##   `Airline ID` = col_double(),
##   Name = col_character(),
##   Alias = col_character(),
##   IATA = col_character(),
##   ICAO = col_character(),
##   Callsign = col_character(),
##   Country = col_character(),
##   Active = col_character()
## )
## Parsed with column specification:
## cols(
##   `Airport ID` = col_double(),
##   Name = col_character(),
##   City = col_character(),
##   Country = col_character(),
##   IATA = col_character(),
##   ICAO = col_character(),
##   Latitude = col_double(),
##   Longitude = col_double(),
##   Altitude = col_double(),
##   Timezone = col_double(),
##   DST = col_character(),
##   `Tz database time zone` = col_character(),
##   Type = col_character(),
##   Source = col_character()
## )
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   `YEAR MFR` = col_double(),
##   `TYPE REGISTRANT` = col_double(),
##   `LAST ACTION DATE` = col_double(),
##   `CERT ISSUE DATE` = col_double(),
##   `TYPE AIRCRAFT` = col_double(),
##   `TYPE ENGINE` = col_double(),
##   `MODE S CODE` = col_double(),
##   `AIR WORTH DATE` = col_double(),
##   `EXPIRATION DATE` = col_double(),
##   X35 = col_logical()
## )
## See spec(...) for full column specifications.
## Parsed with column specification:
## cols(
##   CODE = col_character(),
##   MFR = col_character(),
##   MODEL = col_character(),
##   TYPE = col_double(),
##   HORSEPOWER = col_character(),
##   THRUST = col_character(),
##   X7 = col_logical()
## )
## Parsed with column specification:
## cols(
##   CODE = col_character(),
##   MFR = col_character(),
##   MODEL = col_character(),
##   `TYPE-ACFT` = col_double(),
##   `TYPE-ENG` = col_double(),
##   `AC-CAT` = col_double(),
##   `BUILD-CERT-IND` = col_double(),
##   `NO-ENG` = col_character(),
##   `NO-SEATS` = col_character(),
##   `AC-WEIGHT` = col_character(),
##   SPEED = col_character(),
##   X12 = col_logical()
## )
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   valid = col_datetime(format = ""),
##   lon = col_double(),
##   lat = col_double(),
##   alti = col_double(),
##   vsby = col_double()
## )
## See spec(...) for full column specifications.
## Loading required package: xml2
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:purrr':
## 
##     pluck
## The following object is masked from 'package:readr':
## 
##     guess_encoding
## # A tibble: 1 x 6
##   faa      pop mayor            area zip                                  fip   
##   <chr>  <dbl> <chr>           <dbl> <chr>                                <chr> 
## 1 ATL   506811 Keisha Lance B~  8376 30060, 30301–30322, 30324–30334, 30~ 13-04~

0.4 ✈️ Exercise 4

0.5 Acknowledgments

Data for Exercise 3:

Packages used to produce this assignment are:

tidyverse (Wickham et al. 2019), ggmap (Kahle and Wickham 2013), ggthemes (Arnold 2019), lutz (Teucher 2019), lubridate (Grolemund and Wickham 2011), kableExtra (Zhu 2019), janitor (Firke 2020), viridis (Garnier 2018), bookdown (Xie 2016)

0.6 References

Cite the main sources for your work, including R packages used.

Arnold, Jeffrey B. 2019. Ggthemes: Extra Themes, Scales and Geoms for ’Ggplot2’. https://CRAN.R-project.org/package=ggthemes.

Firke, Sam. 2020. Janitor: Simple Tools for Examining and Cleaning Dirty Data. https://CRAN.R-project.org/package=janitor.

Garnier, Simon. 2018. Viridis: Default Color Maps from ’Matplotlib’. https://CRAN.R-project.org/package=viridis.

Grolemund, Garrett, and Hadley Wickham. 2011. “Dates and Times Made Easy with lubridate.” Journal of Statistical Software 40 (3): 1–25. http://www.jstatsoft.org/v40/i03/.

Kahle, David, and Hadley Wickham. 2013. “Ggmap: Spatial Visualization with Ggplot2.” The R Journal 5 (1): 144–61. https://journal.r-project.org/archive/2013-1/kahle-wickham.pdf.

Teucher, Andy. 2019. Lutz: Look up Time Zones of Point Coordinates. https://CRAN.R-project.org/package=lutz.

Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D’Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. “Welcome to the tidyverse.” Journal of Open Source Software 4 (43): 1686. https://doi.org/10.21105/joss.01686.

Xie, Yihui. 2016. Bookdown: Authoring Books and Technical Documents with R Markdown. Boca Raton, Florida: Chapman; Hall/CRC. https://github.com/rstudio/bookdown.

Zhu, Hao. 2019. KableExtra: Construct Complex Table with ’Kable’ and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.